//
//  CustomerAlert.h
//  Auction
//
//  Created by Gary on 15/9/21.
//  Copyright © 2015年 Lebo. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "CommonDefine.h"
#import "DTCoreText.h"

static const CGFloat kCustomerAlertPaddingTop           = 15.f;//默认的内部视图上部间隔
static const CGFloat kCustomerAlertPaddingHorizontal    = 10.f;//默认的内部视图水平间隔

static const NSString *kCustomerAlertPropertyKeyTitle   = kNavigationBarBtnTitleKey;
static const NSString *kCustomerAlertPropertyKeyTarget  = kNavigationBarBtnTargetKey;
static const NSString *kCustomerAlertPropertyKeyAction  = kNavigationBarBtnActionKey;
static const NSString *kCustomerAlertPropertyKeyFont    = @"font";
static const NSString *kCustomerAlertPropertyKeyColor   = @"color";
static const NSString *kCustomerAlertPropertyKeyBGColor = @"bgcolor";
#define kConfirmButtonColorHighlighted MakeColor(0, 91.f, 255.f)

@interface CustomerAlert : UIView

+ (CustomerAlert *)sharedInstance;

/**
 *  获取CustomerAlert内部视图的宽度
 *
 *  @return CustomerAlert内部视图的宽度
 */
+ (CGFloat)subViewWidth;

/**
 *  默认的标题控件
 *
 *  @param title 标题文字
 *
 *  @return 标题控件
 */
+ (UILabel *)titleLabel:(NSString *)title;

/**
 *  默认的html视图
 *
 *  @param htmlText html文本
 *
 *  @return  html视图
 */
+ (DTAttributedLabel *)htmlView:(NSString *)htmlText;

/**
 *  获取一个默认样式的确认按钮
 *
 *  @return 默认样式的确认按钮
 */
+ (UIButton *)confirmButton;

- (void)hide;

/**
 *  添加置中的内部视图
 *
 *  @param view 内部视图
 */
- (void)addViewToCenter:(UIView *)view;

/**
 *  显示右上角的关闭按钮
 */
- (void)showCloseButton;

/**
 *  显示单纯的html文本，默认提供下方的蓝色确认按钮
 *
 *  @param htmlText html文本
 */
- (void)showTitle:(id)title htmlText:(NSString *)htmlText;

/**
 *  显示单纯的html文本，并限制高度，默认提供下方的蓝色确认按钮
 *
 *  @param htmlText html文本
 *  @param height   html文本的高度
 */
- (void)showTitle:(id)title htmlText:(NSString *)htmlText height:(CGFloat)height;

/**
 *  显示单纯的html文本，并提供下方按钮的属性，属性接受单个按钮的标题字符串等
 *
 *  @param htmlText         html文本
 *  @param buttonProperties 下方按钮的属性
 */
- (void)showTitle:(id)title
         htmlText:(id)htmlText
 buttonProperties:(id)buttonProperties;

/**
 *  显示单纯的html文本，并限制高度，以及提供下方按钮的属性，属性接受单个按钮的标题字符串等
 *
 *  @param htmlText         html文本
 *  @param height           html文本的高度
 *  @param buttonProperties 下方按钮的属性
 */
- (void)showTitle:(id)title
         htmlText:(id)htmlText
           height:(CGFloat)height
 buttonProperties:(id)buttonProperties;

/**
 *  显示视图和下方的按钮
 *
 *  @param view    显示的视图主体
 *  @param buttons 下方的按钮
 */
- (void)showTitle:(UILabel *)title view:(UIView *)view buttons:(NSArray *)buttons;

@end
